// get 请求打印参数
// http://localhost:3000/?user=jspang&age=18  例如仿问
const Koa=require('koa');
const app=new Koa();
app.use(async(ctx)=>{
  if(ctx.url==='/'&&ctx.method==='GET')
  {
      //显示表单页面
       let html=`
<h1>jspang koa2 requst post</h1>
<form method="post" action="/">
      <p>userName</p>
      <input name="userName"/><br/>
      <p>age</p>
      <input name="age"/><br/>
       <p>website</p>
       <input name="webSite"/><br/>
     <button type="submit">submit</button>
</form>
       <h1></h1>`;
       ctx.body=html;
  }else if(ctx.url=='/'&&ctx.method==='POST'){
      let postData=await parsePostData(ctx);
      ctx.body=postData;
  }else{
     ctx.body='<h1>404!</h1>';
  }
});

function parsePostData(ctx){
    //resoleve 同意 reject 拒绝
   return new Promise((resolve ,reject)=>{
       try{
          let postdata="";
          ctx.req.addListener("data",(data)=>{
              postdata+=data;
          })
           ctx.req.on('end',function () {
               let parseData=parseQueryStr(postdata)
               resolve(parseData);
           })//监听事件
       }catch (error) {
          reject(error);//抛出错误
       }
   })
}
// 转成json 对象格式
function parseQueryStr(queryStr){
    let queryData={};
    let queryStrList=queryStr.split('&');
    console.log(queryStrList);
    console.log(queryStrList.entries())
    for(let [index,queryStr] of queryStrList.entries()){// entries 返回的是带索引的数组
        let itemList=queryStr.split('=');
        console.log(itemList);
        queryData[itemList[0]]=decodeURIComponent(itemList[1]);
    }
    return queryData;
}
app.listen(3000,()=>{
    console.log('[demo] server is starting at port 3000')
})